package com.cloudcc.mobile.dao;

import com.cloudcc.mobile.event.BeauEventList;
import com.cloudcc.mobile.event.BeauEventList.BeauInfoEvent;
import com.cloudcc.mobile.event.BeauEventList.BeauInfoEventnew;
import com.cloudcc.mobile.event.BeauEventList.BeauListEvent;
import com.cloudcc.mobile.event.BeauEventList.BeauListFilterEvent;
import com.cloudcc.mobile.event.BeauEventList.DynamicListEvent;
import com.cloudcc.mobile.event.BeauEventList.RelateionFollowListEvent;

/**
 * @author wangzhiqiang
 * @Description:获取 对象 列表以及对象详情的业务
 * @date 2015-11-18 上午10:14:57
 */
public interface IBeauEngine {

    /**
     * 获取对象列表
     *
     * @param viewId     视图id
     * @param pageNum    获取页数
     * @param sortBy     排序字段
     * @param sortModel  排序方式 true 是正序 false 是
     * @param keyword    检索关键字
     * @param expression 检索语法
     * @param event      事件
     */
    // void serachBeauList(String viewId,int pageNum,String sortBy,boolean
    // sortModel,String keyword,String expression,BeauListEvent event);

    void serachBeauList(String objectId, String viewId, int pageNum,
                        String sortBy, boolean sortModel, String keyword,
                        String expression, BeauListEvent event);

    /**
     * 获取对象列表----报表专用
     *
     * @param viewId     视图id
     * @param pageNum    获取页数
     * @param sortBy     排序字段
     * @param sortModel  排序方式 true 是正序 false 是
     * @param keyword    检索关键字
     * @param expression 检索语法
     * @param event      事件
     */
    // void serachBeauList(String viewId,int pageNum,String sortBy,boolean
    // sortModel,String keyword,String expression,BeauListEvent event);

    void serachBeauListBaobiao(String objectId, String viewId, int pageNum,
                        String sortBy, boolean sortModel, String keyword,
                        String expression,int number, BeauListEvent event);

    /**
     * 获取对象筛选
     *
     * @param event
     */
    void getFilter(String objectId, BeauListFilterEvent event);

    /**
     * 获取对象的头部
     *
     * @param id
     */
    void getBeauInfo(String id, String objApiName, String data,
                     BeauInfoEvent Event);

    /**
     * 获取详情默认tab页面
     *
     * @param objApiName
     */
    void getBeauTabInfo(String objApiName,String prefix,
                        BeauEventList.BeauInfoTabEvent Event);

    /**
     * 获取对象的详情
     *
     * @param id
     */
    void getBeauInfoXG(String id, String objApiName,
                       BeauInfoEventnew event);

    /**
     * 获取关联动态
     *
     * @param id
     * @param event
     */
    void getBeauRelatDynamic(String id, DynamicListEvent event);

    void getBeauRelatFollows(Object data, RelateionFollowListEvent event);

}
